//
//  HBTabBarController.swift
//  sinaWeibo
//
//  Created by Beans on 16/6/23.
//  Copyright © 2016年 iceWorks. All rights reserved.
//

import UIKit

class HBTabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // 添加子控制器
        addChildViewController()

        // 只读属性, 只实现了属性的get方法
        // KVC -- 运行时机制, 只读属性甚至私有属性都可以通过KVC赋值
//        tabBar = HBTabBar()
        let myTabBar = HBTabBar()
        setValue(myTabBar, forKey: "tabBar")    // key

        // 3. 闭包回调
        myTabBar.closure = {
            printLog("闭包回调, 弹出视窗")

//            let composeView = HBComposeView()
////            self.view = composeView   // 有bug, 退出后是黑的, 应该改为添加
//            self.view.addSubview(composeView)
//            composeView.showAnimation(self)

            /* 此处通过类方法, 且进行了封装 */
            HBComposeView.showAnimation(self)   // 可以通过顺传的方式,把控制器传递到View
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    
    /// 重载没有参数的方法
    func addChildViewController() {
        addChildViewController(HBHomeViewController(), title: "首页", image: "tabbar_home")
        addChildViewController(HBMessageViewController(), title: "消息", image: "tabbar_message_center")
        addChildViewController(HBFindViewController(), title: "发现", image: "tabbar_discover")
        addChildViewController(HBSettingViewController(), title: "我", image: "tabbar_profile")
    }

    // 封装: 添加childVc
    // 重载
    // 选择图片名可以通过拼接文件名实现
    /// 添加子控制器, 设置title和image
    func addChildViewController(childController: UIViewController, title: String, image: String) {
        childController.tabBarItem = HBTabBarItem() // 自定义类中统一修改badge图标
        
        childController.title = title
        childController.tabBarItem.image = UIImage(named: image)
        childController.tabBarItem.selectedImage = UIImage(named: "\(image)_highlighted")

        addChildViewController(UINavigationController(rootViewController: childController))
    }
    
}
